package com.oms.service;

import java.sql.Timestamp;
import java.util.List;

import com.oms.domain.Message;
import com.oms.domain.User;

/**
 * 有关消息的业务操作
 * @author junfy
 *
 */
public interface MessageService {
	
	
	/**
	 * 发送者向个人发送消息
	 * @param messageType	//消息类型
	 * @param userByReceiverId	//接收者user
	 * @param messageTitle	//消息的标题
	 * @param comment	//消息的内容
	 * @return	成功(true),失败(false)
	 */
	public void sendMessage(User sender, User userByReceiver
			,Short messageType ,String messageTitle,String messageComment);
	
	/**
	 * 发送者向用户集发送消息
	 * @param messageType	//消息类型
	 * @param userBySenderId	//发送者user
	 * @param userByReceiverId	//接收者user
	 * @param messageTitle	//消息的标题
	 * @param comment	//消息的内容
	 * @return	成功(true),失败(false)
	 */
	public void sendMessage(User sender , List<User> receiverList
			,Short messageType,String messageTitle,String messageComment);
	
	/**
	 * 查看某一时间段发送的信息
	 * @param sender
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public List<Message> getMessageList(User sender,Timestamp startTime,Timestamp endTime);
	
	
	/**
	 * 根据条目范围、时间范围，查询消息集合
	 * @param sender
	 * @param firstResult
	 * @param maxResults
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public List<Message> getMessageListWithPage(User sender,Integer firstResult,Integer maxResults,Timestamp startTime,Timestamp endTime);
	
	/**
	 * 通过用户和消息主键删除消息
	 * @param id
	 * @param user
	 */
	public void deleteMsg(Integer id, User user);
	
	/**
	 * 发送者浏览一条信息
	 * @param id
	 * @param user
	 * @return
	 */
	public Message senderReadMsg(Integer id ,User user);
	

}
